feat(nargo): Multiple circuits info for binary programs#4719
feat(nargo): Multiple circuits info for binary programs#4719
Conversation
|
@TomAFrench Only just realized we will also fail on the gates diff with these changes as well. I just made a temporary solution here (noir-lang/noir-gates-diff#1). I can fix this to handle multiple circuits in our gates as part of this PR or in a follow-up, but either way we should take some time tomorrow settle on how we want to display circuit info for cases where we have foldable calls. |
Just merged this |
Sounds good. Let's wait for #4730 to pass? Then we can merge noir-lang/noir-gates-diff#2 update to the main branch of noir-gates-diff and merge #4730 immediately following this PR? |
|
@TomAFrench We wanted to merge this to master with the temp commit then merge #4730. The reference content in noir-gates-diff will expect the newly-formed info circuit, but master has the old version. We could either revert 5172dfd or eat the gates-diff failing for this PR and then all subsequent PRs will pass for the gates diff. |
|
Yeah, I'm not too concerned with this failing if we know it'll pass in future. |
Ok I'm going to merge then |
Actually will it let us merge with the failing gates diff? If not I can alter the commit to pass |
|
It should work as it's not a required workflow. |
…oir-lang/noir#4719) chore: update condition for clearing warning comment on release PRs (noir-lang/noir#4739) chore(ci): fix cutting new versions of the docs (noir-lang/noir#4737) chore(ci): replace `yarn build:js:only` script (noir-lang/noir#4735) chore: update JS publish workflow to upload build artifacts correctly. (noir-lang/noir#4734) feat: add `remove_enable_side_effects` SSA pass (noir-lang/noir#4224) chore: update from vulnerable version of h2 (noir-lang/noir#4714) chore(ci): stop updating version list before cutting new docs version (noir-lang/noir#4726) chore: remove `FunctionInput::dummy` (noir-lang/noir#4723) chore: remove docker CI flow (noir-lang/noir#4724) fix: unknown slice lengths coming from as_slice (noir-lang/noir#4725) chore: remove unused env vars from `Cross.toml` (noir-lang/noir#4717) feat: improve nargo check cli with --override flag and feedback for existing files (noir-lang/noir#4575) feat: Allow slices to brillig entry points (noir-lang/noir#4713) chore: simplify how `acvm_backend.wasm` is embedded (noir-lang/noir#4703) fix(acvm): Mark outputs of Opcode::Call solvable (noir-lang/noir#4708) fix: Field comparisons (noir-lang/noir#4704) feat(acvm_js): Execute program (noir-lang/noir#4694) chore: simplify how blns is loaded into tests (noir-lang/noir#4705) fix(ssa): Do not use get_value_max_num_bits when we want pure type information (noir-lang/noir#4700) chore: remove conditional compilation around `acvm_js` package (noir-lang/noir#4702) feat(docs): Documenting noir codegen (noir-lang/noir#4454) chore: check for references to private functions during path resolution (noir-lang/noir#4622) chore: fix clippy errors (noir-lang/noir#4684) fix: Last use analysis & make it an SSA pass (noir-lang/noir#4686) feat: improve SSA type-awareness in EQ and MUL instructions (noir-lang/noir#4691) feat: improve optimisations on range constraints (noir-lang/noir#4690) chore: remove last traces of nix (noir-lang/noir#4679) chore: Use is_entry_point helper on RuntimeType (noir-lang/noir#4678)
Automated pull of development from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE feat(nargo): Multiple circuits info for binary programs (noir-lang/noir#4719) chore: update condition for clearing warning comment on release PRs (noir-lang/noir#4739) chore(ci): fix cutting new versions of the docs (noir-lang/noir#4737) chore(ci): replace `yarn build:js:only` script (noir-lang/noir#4735) chore: update JS publish workflow to upload build artifacts correctly. (noir-lang/noir#4734) feat: add `remove_enable_side_effects` SSA pass (noir-lang/noir#4224) chore: update from vulnerable version of h2 (noir-lang/noir#4714) chore(ci): stop updating version list before cutting new docs version (noir-lang/noir#4726) chore: remove `FunctionInput::dummy` (noir-lang/noir#4723) chore: remove docker CI flow (noir-lang/noir#4724) fix: unknown slice lengths coming from as_slice (noir-lang/noir#4725) chore: remove unused env vars from `Cross.toml` (noir-lang/noir#4717) feat: improve nargo check cli with --override flag and feedback for existing files (noir-lang/noir#4575) feat: Allow slices to brillig entry points (noir-lang/noir#4713) chore: simplify how `acvm_backend.wasm` is embedded (noir-lang/noir#4703) fix(acvm): Mark outputs of Opcode::Call solvable (noir-lang/noir#4708) fix: Field comparisons (noir-lang/noir#4704) feat(acvm_js): Execute program (noir-lang/noir#4694) chore: simplify how blns is loaded into tests (noir-lang/noir#4705) fix(ssa): Do not use get_value_max_num_bits when we want pure type information (noir-lang/noir#4700) chore: remove conditional compilation around `acvm_js` package (noir-lang/noir#4702) feat(docs): Documenting noir codegen (noir-lang/noir#4454) chore: check for references to private functions during path resolution (noir-lang/noir#4622) chore: fix clippy errors (noir-lang/noir#4684) fix: Last use analysis & make it an SSA pass (noir-lang/noir#4686) feat: improve SSA type-awareness in EQ and MUL instructions (noir-lang/noir#4691) feat: improve optimisations on range constraints (noir-lang/noir#4690) chore: remove last traces of nix (noir-lang/noir#4679) chore: Use is_entry_point helper on RuntimeType (noir-lang/noir#4678) END_COMMIT_OVERRIDE --------- Co-authored-by: sirasistant <sirasistant@gmail.com> Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com> Co-authored-by: vezenovm <mvezenov@gmail.com>
Automated pull of development from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec. BEGIN_COMMIT_OVERRIDE feat(nargo): Multiple circuits info for binary programs (#4719) chore: update condition for clearing warning comment on release PRs (#4739) chore(ci): fix cutting new versions of the docs (#4737) chore(ci): replace `yarn build:js:only` script (#4735) chore: update JS publish workflow to upload build artifacts correctly. (#4734) feat: add `remove_enable_side_effects` SSA pass (#4224) chore: update from vulnerable version of h2 (#4714) chore(ci): stop updating version list before cutting new docs version (#4726) chore: remove `FunctionInput::dummy` (#4723) chore: remove docker CI flow (#4724) fix: unknown slice lengths coming from as_slice (#4725) chore: remove unused env vars from `Cross.toml` (#4717) feat: improve nargo check cli with --override flag and feedback for existing files (#4575) feat: Allow slices to brillig entry points (#4713) chore: simplify how `acvm_backend.wasm` is embedded (#4703) fix(acvm): Mark outputs of Opcode::Call solvable (#4708) fix: Field comparisons (#4704) feat(acvm_js): Execute program (#4694) chore: simplify how blns is loaded into tests (#4705) fix(ssa): Do not use get_value_max_num_bits when we want pure type information (#4700) chore: remove conditional compilation around `acvm_js` package (#4702) feat(docs): Documenting noir codegen (#4454) chore: check for references to private functions during path resolution (#4622) chore: fix clippy errors (#4684) fix: Last use analysis & make it an SSA pass (#4686) feat: improve SSA type-awareness in EQ and MUL instructions (#4691) feat: improve optimisations on range constraints (#4690) chore: remove last traces of nix (#4679) chore: Use is_entry_point helper on RuntimeType (#4678) END_COMMIT_OVERRIDE --------- Co-authored-by: sirasistant <sirasistant@gmail.com> Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com> Co-authored-by: vezenovm <mvezenov@gmail.com>
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.34.0</summary> ## [0.34.0](aztec-package-v0.33.0...aztec-package-v0.34.0) (2024-04-10) ### Miscellaneous * Reduce log verbosity in local e2e tests ([#5622](#5622)) ([c496a10](c496a10)) </details> <details><summary>barretenberg.js: 0.34.0</summary> ## [0.34.0](barretenberg.js-v0.33.0...barretenberg.js-v0.34.0) (2024-04-10) ### Miscellaneous * **barretenberg.js:** Synchronize aztec-packages versions </details> <details><summary>aztec-cli: 0.34.0</summary> ## [0.34.0](aztec-cli-v0.33.0...aztec-cli-v0.34.0) (2024-04-10) ### Miscellaneous * Reduce log verbosity in local e2e tests ([#5622](#5622)) ([c496a10](c496a10)) </details> <details><summary>aztec-packages: 0.34.0</summary> ## [0.34.0](aztec-packages-v0.33.0...aztec-packages-v0.34.0) (2024-04-10) ### ⚠ BREAKING CHANGES * remove fixed-length keccak256 ([#5617](#5617)) ### Features * **acvm_js:** Execute program (noir-lang/noir#4694) ([ff28080](ff28080)) * Add `remove_enable_side_effects` SSA pass (noir-lang/noir#4224) ([ff28080](ff28080)) * Allow slices to brillig entry points (noir-lang/noir#4713) ([ff28080](ff28080)) * **avm:** Basic AVM-ACVM interoperability ([#5595](#5595)) ([d872445](d872445)) * **avm:** Make authwit work with avm ([#5594](#5594)) ([b02d1e1](b02d1e1)) * **docs:** Documenting noir codegen (noir-lang/noir#4454) ([ff28080](ff28080)) * Generalize protogalaxy to multiple instances ([#5510](#5510)) ([f038b70](f038b70)) * Improve nargo check cli with --override flag and feedback for existing files (noir-lang/noir#4575) ([ff28080](ff28080)) * Improve optimisations on range constraints (noir-lang/noir#4690) ([ff28080](ff28080)) * Improve SSA type-awareness in EQ and MUL instructions (noir-lang/noir#4691) ([ff28080](ff28080)) * **nargo:** Multiple circuits info for binary programs (noir-lang/noir#4719) ([ff28080](ff28080)) * Stdlib databus ([#5598](#5598)) ([633a711](633a711)) ### Bug Fixes * **acvm:** Mark outputs of Opcode::Call solvable (noir-lang/noir#4708) ([ff28080](ff28080)) * Do not retry RPC requests on 4xx errors ([#5634](#5634)) ([5af2b95](5af2b95)) * Field comparisons (noir-lang/noir#4704) ([ff28080](ff28080)) * Last use analysis & make it an SSA pass (noir-lang/noir#4686) ([ff28080](ff28080)) * **ssa:** Do not use get_value_max_num_bits when we want pure type information (noir-lang/noir#4700) ([ff28080](ff28080)) * Unknown slice lengths coming from as_slice (noir-lang/noir#4725) ([ff28080](ff28080)) * Use empty artifact in test ([#5640](#5640)) ([1d18a5e](1d18a5e)) ### Miscellaneous * Check for references to private functions during path resolution (noir-lang/noir#4622) ([ff28080](ff28080)) * **ci:** Fix cutting new versions of the docs (noir-lang/noir#4737) ([ff28080](ff28080)) * **ci:** Replace `yarn build:js:only` script (noir-lang/noir#4735) ([ff28080](ff28080)) * **ci:** Stop updating version list before cutting new docs version (noir-lang/noir#4726) ([ff28080](ff28080)) * Disable earthly cloud ([#5639](#5639)) ([47e9c25](47e9c25)) * Fix clippy errors (noir-lang/noir#4684) ([ff28080](ff28080)) * Reduce log verbosity in local e2e tests ([#5622](#5622)) ([c496a10](c496a10)) * Remove `FunctionInput::dummy` (noir-lang/noir#4723) ([ff28080](ff28080)) * Remove conditional compilation around `acvm_js` package (noir-lang/noir#4702) ([ff28080](ff28080)) * Remove docker CI flow (noir-lang/noir#4724) ([ff28080](ff28080)) * Remove fixed-length keccak256 ([#5617](#5617)) ([40480b3](40480b3)) * Remove last traces of nix (noir-lang/noir#4679) ([ff28080](ff28080)) * Remove unused env vars from `Cross.toml` (noir-lang/noir#4717) ([ff28080](ff28080)) * Replace relative paths to noir-protocol-circuits ([bc214c5](bc214c5)) * Simplify how `acvm_backend.wasm` is embedded (noir-lang/noir#4703) ([ff28080](ff28080)) * Simplify how blns is loaded into tests (noir-lang/noir#4705) ([ff28080](ff28080)) * Update condition for clearing warning comment on release PRs (noir-lang/noir#4739) ([ff28080](ff28080)) * Update from vulnerable version of h2 (noir-lang/noir#4714) ([ff28080](ff28080)) * Update JS publish workflow to upload build artifacts correctly. (noir-lang/noir#4734) ([ff28080](ff28080)) * Use is_entry_point helper on RuntimeType (noir-lang/noir#4678) ([ff28080](ff28080)) </details> <details><summary>barretenberg: 0.34.0</summary> ## [0.34.0](barretenberg-v0.33.0...barretenberg-v0.34.0) (2024-04-10) ### ⚠ BREAKING CHANGES * remove fixed-length keccak256 ([#5617](#5617)) ### Features * Generalize protogalaxy to multiple instances ([#5510](#5510)) ([f038b70](f038b70)) * Stdlib databus ([#5598](#5598)) ([633a711](633a711)) ### Miscellaneous * Remove fixed-length keccak256 ([#5617](#5617)) ([40480b3](40480b3)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
* master: (144 commits) fix: correct ICE panic messages in brillig `convert_black_box_call` (#4761) chore(docs): Fix link in the Data Types page (#4527) chore(doc): Fix broken docs links (#4606) chore: Remove the old Value struct from the oracle docs (#4738) feat(nargo): Multiple circuits info for binary programs (#4719) chore: update condition for clearing warning comment on release PRs (#4739) chore(ci): fix cutting new versions of the docs (#4737) chore(ci): replace `yarn build:js:only` script (#4735) chore: update JS publish workflow to upload build artifacts correctly. (#4734) feat: add `remove_enable_side_effects` SSA pass (#4224) chore: update from vulnerable version of h2 (#4714) chore(ci): stop updating version list before cutting new docs version (#4726) chore: remove `FunctionInput::dummy` (#4723) chore: remove docker CI flow (#4724) fix: unknown slice lengths coming from as_slice (#4725) chore: remove unused env vars from `Cross.toml` (#4717) feat: improve nargo check cli with --override flag and feedback for existing files (#4575) feat: Allow slices to brillig entry points (#4713) chore: simplify how `acvm_backend.wasm` is embedded (#4703) fix(acvm): Mark outputs of Opcode::Call solvable (#4708) ...
🤖 I have created a release *beep* *boop* --- <details><summary>0.27.0</summary> ## [0.27.0](v0.26.0...v0.27.0) (2024-04-10) ### ⚠ BREAKING CHANGES * Brillig typed memory (AztecProtocol/aztec-packages#5395) ### Features * **acir_gen:** Fold attribute at compile-time and initial non inlined ACIR (AztecProtocol/aztec-packages#5341) ([a0f7474](a0f7474)) * **acvm_js:** Execute program ([#4694](#4694)) ([386f6d0](386f6d0)) * **acvm:** Execute multiple circuits (AztecProtocol/aztec-packages#5380) ([a0f7474](a0f7474)) * Add `remove_enable_side_effects` SSA pass ([#4224](#4224)) ([94952db](94952db)) * Allow slices to brillig entry points ([#4713](#4713)) ([62423d5](62423d5)) * Brillig typed memory (AztecProtocol/aztec-packages#5395) ([0bc18c4](0bc18c4)) * **docs:** Documenting noir codegen ([#4454](#4454)) ([24f6d85](24f6d85)) * Improve nargo check cli with --override flag and feedback for existing files ([#4575](#4575)) ([5e7fbd4](5e7fbd4)) * Improve optimisations on range constraints ([#4690](#4690)) ([96b8110](96b8110)) * Improve SSA type-awareness in EQ and MUL instructions ([#4691](#4691)) ([669f1a0](669f1a0)) * **nargo:** Multiple circuits info for binary programs ([#4719](#4719)) ([50d2735](50d2735)) ### Bug Fixes * "Types in a binary operation should match, but found T and T" ([#4648](#4648)) ([30c9f31](30c9f31)) * **acvm:** Mark outputs of Opcode::Call solvable ([#4708](#4708)) ([8fea405](8fea405)) * Correct ICE panic messages in brillig `convert_black_box_call` ([#4761](#4761)) ([f3eee6c](f3eee6c)) * Error when a type variable is unbound during monomorphization instead of defaulting to Field ([#4674](#4674)) ([03cdba4](03cdba4)) * Field comparisons ([#4704](#4704)) ([079cb2a](079cb2a)) * Impl search no longer selects an impl if multiple are applicable ([#4662](#4662)) ([0150600](0150600)) * Last use analysis & make it an SSA pass ([#4686](#4686)) ([0d3d5fd](0d3d5fd)) * Slice coercions ([#4640](#4640)) ([c0bae17](c0bae17)) * **ssa:** Accurate constant type for slice dummy data in flattening ([#4661](#4661)) ([b87654e](b87654e)) * **ssa:** Do not use get_value_max_num_bits when we want pure type information ([#4700](#4700)) ([b55a580](b55a580)) * **ssa:** Fix slice intrinsic handling in the capacity tracker ([#4643](#4643)) ([1b50ce1](1b50ce1)) * Unknown slice lengths coming from as_slice ([#4725](#4725)) ([f21129e](f21129e)) * Update commit for noir-gates-diff ([#4773](#4773)) ([a9766c5](a9766c5)) </details> <details><summary>0.43.0</summary> ## [0.43.0](v0.42.0...v0.43.0) (2024-04-10) ### ⚠ BREAKING CHANGES * Brillig typed memory (AztecProtocol/aztec-packages#5395) * **acir:** Program and witness stack structure (AztecProtocol/aztec-packages#5149) * automatic NoteInterface and NoteGetterOptions auto select (AztecProtocol/aztec-packages#4508) * Acir call opcode (AztecProtocol/aztec-packages#4773) * Support contracts with no constructor (AztecProtocol/aztec-packages#5175) * Internal as a macro (AztecProtocol/aztec-packages#4898) * move noir out of yarn-project (AztecProtocol/aztec-packages#4479) * note type ids (AztecProtocol/aztec-packages#4500) * rename bigint_neg into bigint_sub (AztecProtocol/aztec-packages#4420) * Add expression width into acir (AztecProtocol/aztec-packages#4014) * init storage macro (AztecProtocol/aztec-packages#4200) * **acir:** Move `is_recursive` flag to be part of the circuit definition (AztecProtocol/aztec-packages#4221) * Sync commits from `aztec-packages` ([#4144](#4144)) * Breaking changes from aztec-packages ([#3955](#3955)) * Rename Arithmetic opcode to AssertZero ([#3840](#3840)) * Remove unused methods on ACIR opcodes ([#3841](#3841)) ### Features * Acir call opcode (AztecProtocol/aztec-packages#4773) ([c3c9e19](c3c9e19)) * **acir_gen:** Fold attribute at compile-time and initial non inlined ACIR (AztecProtocol/aztec-packages#5341) ([a0f7474](a0f7474)) * **acir:** Program and witness stack structure (AztecProtocol/aztec-packages#5149) ([13eb71b](13eb71b)) * **acvm_js:** Execute program ([#4694](#4694)) ([386f6d0](386f6d0)) * **acvm:** Execute multiple circuits (AztecProtocol/aztec-packages#5380) ([a0f7474](a0f7474)) * Add bit size to const opcode (AztecProtocol/aztec-packages#4385) ([158c8ce](158c8ce)) * Add CMOV instruction to brillig and brillig gen (AztecProtocol/aztec-packages#5308) ([13eb71b](13eb71b)) * Add expression width into acir (AztecProtocol/aztec-packages#4014) ([158c8ce](158c8ce)) * Add instrumentation for tracking variables in debugging ([#4122](#4122)) ([c58d691](c58d691)) * Add poseidon2 opcode implementation for acvm/brillig, and Noir ([#4398](#4398)) ([10e8292](10e8292)) * Add support for overriding expression width ([#4117](#4117)) ([c8026d5](c8026d5)) * Added cast opcode and cast calldata (AztecProtocol/aztec-packages#4423) ([78ef013](78ef013)) * Allow brillig to read arrays directly from memory (AztecProtocol/aztec-packages#4460) ([158c8ce](158c8ce)) * Allow nested arrays and vectors in Brillig foreign calls (AztecProtocol/aztec-packages#4478) ([158c8ce](158c8ce)) * Allow variables and stack trace inspection in the debugger ([#4184](#4184)) ([bf263fc](bf263fc)) * Automatic NoteInterface and NoteGetterOptions auto select (AztecProtocol/aztec-packages#4508) ([13eb71b](13eb71b)) * **avm:** Back in avm context with macro - refactor context (AztecProtocol/aztec-packages#4438) ([158c8ce](158c8ce)) * **avm:** Brillig CONST of size > u128 (AztecProtocol/aztec-packages#5217) ([c3c9e19](c3c9e19)) * **aztec-nr:** Initial work for aztec public vm macro (AztecProtocol/aztec-packages#4400) ([158c8ce](158c8ce)) * Backpropagate constants in ACIR during optimization ([#3926](#3926)) ([aad0da0](aad0da0)) * Breaking changes from aztec-packages ([#3955](#3955)) ([5be049e](5be049e)) * Brillig IR refactor (AztecProtocol/aztec-packages#5233) ([c3c9e19](c3c9e19)) * Brillig typed memory (AztecProtocol/aztec-packages#5395) ([0bc18c4](0bc18c4)) * Check initializer msg.sender matches deployer from address preimage (AztecProtocol/aztec-packages#5222) ([c3c9e19](c3c9e19)) * Evaluation of dynamic assert messages ([#4101](#4101)) ([c284e01](c284e01)) * Init storage macro (AztecProtocol/aztec-packages#4200) ([158c8ce](158c8ce)) * Initial Earthly CI (AztecProtocol/aztec-packages#5069) ([c3c9e19](c3c9e19)) * Internal as a macro (AztecProtocol/aztec-packages#4898) ([5f57ebb](5f57ebb)) * New brillig field operations and refactor of binary operations (AztecProtocol/aztec-packages#5208) ([c3c9e19](c3c9e19)) * Note type ids (AztecProtocol/aztec-packages#4500) ([78ef013](78ef013)) * Remove range constraints from witnesses which are constrained to be constants ([#3928](#3928)) ([afe9c7a](afe9c7a)) * Remove replacement of boolean range opcodes with `AssertZero` opcodes ([#4107](#4107)) ([dac0e87](dac0e87)) * Signed integer division and modulus in brillig gen (AztecProtocol/aztec-packages#5279) ([c3c9e19](c3c9e19)) * Support contracts with no constructor (AztecProtocol/aztec-packages#5175) ([c3c9e19](c3c9e19)) * Sync `aztec-packages` ([#4011](#4011)) ([fee2452](fee2452)) * Sync commits from `aztec-packages` ([#4068](#4068)) ([7a8f3a3](7a8f3a3)) * Sync commits from `aztec-packages` ([#4144](#4144)) ([0205d3b](0205d3b)) * Sync from aztec-packages ([#4483](#4483)) ([fe8f277](fe8f277)) * Sync from noir (AztecProtocol/aztec-packages#5234) ([c3c9e19](c3c9e19)) * Sync from noir (AztecProtocol/aztec-packages#5286) ([c3c9e19](c3c9e19)) ### Bug Fixes * **acvm:** Mark outputs of Opcode::Call solvable ([#4708](#4708)) ([8fea405](8fea405)) * Noir test incorrect reporting (AztecProtocol/aztec-packages#4925) ([5f57ebb](5f57ebb)) * Remove panic from `init_log_level` in `acvm_js` ([#4195](#4195)) ([2e26530](2e26530)) * Return error rather instead of panicking on invalid circuit ([#3976](#3976)) ([67201bf](67201bf)) ### Miscellaneous Chores * **acir:** Move `is_recursive` flag to be part of the circuit definition (AztecProtocol/aztec-packages#4221) ([158c8ce](158c8ce)) * Move noir out of yarn-project (AztecProtocol/aztec-packages#4479) ([78ef013](78ef013)) * Remove unused methods on ACIR opcodes ([#3841](#3841)) ([9e5d0e8](9e5d0e8)) * Rename Arithmetic opcode to AssertZero ([#3840](#3840)) ([836f171](836f171)) * Rename bigint_neg into bigint_sub (AztecProtocol/aztec-packages#4420) ([158c8ce](158c8ce)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-package: 0.34.0</summary> ## [0.34.0](AztecProtocol/aztec-packages@aztec-package-v0.33.0...aztec-package-v0.34.0) (2024-04-10) ### Miscellaneous * Reduce log verbosity in local e2e tests ([#5622](AztecProtocol/aztec-packages#5622)) ([c496a10](AztecProtocol/aztec-packages@c496a10)) </details> <details><summary>barretenberg.js: 0.34.0</summary> ## [0.34.0](AztecProtocol/aztec-packages@barretenberg.js-v0.33.0...barretenberg.js-v0.34.0) (2024-04-10) ### Miscellaneous * **barretenberg.js:** Synchronize aztec-packages versions </details> <details><summary>aztec-cli: 0.34.0</summary> ## [0.34.0](AztecProtocol/aztec-packages@aztec-cli-v0.33.0...aztec-cli-v0.34.0) (2024-04-10) ### Miscellaneous * Reduce log verbosity in local e2e tests ([#5622](AztecProtocol/aztec-packages#5622)) ([c496a10](AztecProtocol/aztec-packages@c496a10)) </details> <details><summary>aztec-packages: 0.34.0</summary> ## [0.34.0](AztecProtocol/aztec-packages@aztec-packages-v0.33.0...aztec-packages-v0.34.0) (2024-04-10) ### ⚠ BREAKING CHANGES * remove fixed-length keccak256 ([#5617](AztecProtocol/aztec-packages#5617)) ### Features * **acvm_js:** Execute program (noir-lang/noir#4694) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Add `remove_enable_side_effects` SSA pass (noir-lang/noir#4224) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Allow slices to brillig entry points (noir-lang/noir#4713) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * **avm:** Basic AVM-ACVM interoperability ([#5595](AztecProtocol/aztec-packages#5595)) ([d872445](AztecProtocol/aztec-packages@d872445)) * **avm:** Make authwit work with avm ([#5594](AztecProtocol/aztec-packages#5594)) ([b02d1e1](AztecProtocol/aztec-packages@b02d1e1)) * **docs:** Documenting noir codegen (noir-lang/noir#4454) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Generalize protogalaxy to multiple instances ([#5510](AztecProtocol/aztec-packages#5510)) ([f038b70](AztecProtocol/aztec-packages@f038b70)) * Improve nargo check cli with --override flag and feedback for existing files (noir-lang/noir#4575) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Improve optimisations on range constraints (noir-lang/noir#4690) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Improve SSA type-awareness in EQ and MUL instructions (noir-lang/noir#4691) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * **nargo:** Multiple circuits info for binary programs (noir-lang/noir#4719) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Stdlib databus ([#5598](AztecProtocol/aztec-packages#5598)) ([633a711](AztecProtocol/aztec-packages@633a711)) ### Bug Fixes * **acvm:** Mark outputs of Opcode::Call solvable (noir-lang/noir#4708) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Do not retry RPC requests on 4xx errors ([#5634](AztecProtocol/aztec-packages#5634)) ([5af2b95](AztecProtocol/aztec-packages@5af2b95)) * Field comparisons (noir-lang/noir#4704) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Last use analysis & make it an SSA pass (noir-lang/noir#4686) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * **ssa:** Do not use get_value_max_num_bits when we want pure type information (noir-lang/noir#4700) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Unknown slice lengths coming from as_slice (noir-lang/noir#4725) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Use empty artifact in test ([#5640](AztecProtocol/aztec-packages#5640)) ([1d18a5e](AztecProtocol/aztec-packages@1d18a5e)) ### Miscellaneous * Check for references to private functions during path resolution (noir-lang/noir#4622) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * **ci:** Fix cutting new versions of the docs (noir-lang/noir#4737) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * **ci:** Replace `yarn build:js:only` script (noir-lang/noir#4735) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * **ci:** Stop updating version list before cutting new docs version (noir-lang/noir#4726) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Disable earthly cloud ([#5639](AztecProtocol/aztec-packages#5639)) ([47e9c25](AztecProtocol/aztec-packages@47e9c25)) * Fix clippy errors (noir-lang/noir#4684) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Reduce log verbosity in local e2e tests ([#5622](AztecProtocol/aztec-packages#5622)) ([c496a10](AztecProtocol/aztec-packages@c496a10)) * Remove `FunctionInput::dummy` (noir-lang/noir#4723) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Remove conditional compilation around `acvm_js` package (noir-lang/noir#4702) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Remove docker CI flow (noir-lang/noir#4724) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Remove fixed-length keccak256 ([#5617](AztecProtocol/aztec-packages#5617)) ([40480b3](AztecProtocol/aztec-packages@40480b3)) * Remove last traces of nix (noir-lang/noir#4679) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Remove unused env vars from `Cross.toml` (noir-lang/noir#4717) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Replace relative paths to noir-protocol-circuits ([bc214c5](AztecProtocol/aztec-packages@bc214c5)) * Simplify how `acvm_backend.wasm` is embedded (noir-lang/noir#4703) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Simplify how blns is loaded into tests (noir-lang/noir#4705) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Update condition for clearing warning comment on release PRs (noir-lang/noir#4739) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Update from vulnerable version of h2 (noir-lang/noir#4714) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Update JS publish workflow to upload build artifacts correctly. (noir-lang/noir#4734) ([ff28080](AztecProtocol/aztec-packages@ff28080)) * Use is_entry_point helper on RuntimeType (noir-lang/noir#4678) ([ff28080](AztecProtocol/aztec-packages@ff28080)) </details> <details><summary>barretenberg: 0.34.0</summary> ## [0.34.0](AztecProtocol/aztec-packages@barretenberg-v0.33.0...barretenberg-v0.34.0) (2024-04-10) ### ⚠ BREAKING CHANGES * remove fixed-length keccak256 ([#5617](AztecProtocol/aztec-packages#5617)) ### Features * Generalize protogalaxy to multiple instances ([#5510](AztecProtocol/aztec-packages#5510)) ([f038b70](AztecProtocol/aztec-packages@f038b70)) * Stdlib databus ([#5598](AztecProtocol/aztec-packages#5598)) ([633a711](AztecProtocol/aztec-packages@633a711)) ### Miscellaneous * Remove fixed-length keccak256 ([#5617](AztecProtocol/aztec-packages#5617)) ([40480b3](AztecProtocol/aztec-packages@40480b3)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
chore: Release Noir(0.27.0) (noir-lang/noir#4632) fix: Update commit for noir-gates-diff (noir-lang/noir#4773) fix: correct ICE panic messages in brillig `convert_black_box_call` (noir-lang/noir#4761) chore(docs): Fix link in the Data Types page (noir-lang/noir#4527) chore(doc): Fix broken docs links (noir-lang/noir#4606) chore: Remove the old Value struct from the oracle docs (noir-lang/noir#4738) feat(nargo): Multiple circuits info for binary programs (noir-lang/noir#4719) chore: update condition for clearing warning comment on release PRs (noir-lang/noir#4739) chore(ci): fix cutting new versions of the docs (noir-lang/noir#4737) chore(ci): replace `yarn build:js:only` script (noir-lang/noir#4735) chore: update JS publish workflow to upload build artifacts correctly. (noir-lang/noir#4734) feat: add `remove_enable_side_effects` SSA pass (noir-lang/noir#4224) chore: update from vulnerable version of h2 (noir-lang/noir#4714) chore(ci): stop updating version list before cutting new docs version (noir-lang/noir#4726) chore: remove `FunctionInput::dummy` (noir-lang/noir#4723) chore: remove docker CI flow (noir-lang/noir#4724) fix: unknown slice lengths coming from as_slice (noir-lang/noir#4725) chore: remove unused env vars from `Cross.toml` (noir-lang/noir#4717) feat: improve nargo check cli with --override flag and feedback for existing files (noir-lang/noir#4575) feat: Allow slices to brillig entry points (noir-lang/noir#4713) chore: simplify how `acvm_backend.wasm` is embedded (noir-lang/noir#4703) fix(acvm): Mark outputs of Opcode::Call solvable (noir-lang/noir#4708) fix: Field comparisons (noir-lang/noir#4704) feat(acvm_js): Execute program (noir-lang/noir#4694) chore: simplify how blns is loaded into tests (noir-lang/noir#4705) fix(ssa): Do not use get_value_max_num_bits when we want pure type information (noir-lang/noir#4700) chore: remove conditional compilation around `acvm_js` package (noir-lang/noir#4702) feat(docs): Documenting noir codegen (noir-lang/noir#4454) chore: check for references to private functions during path resolution (noir-lang/noir#4622) chore: fix clippy errors (noir-lang/noir#4684) fix: Last use analysis & make it an SSA pass (noir-lang/noir#4686) feat: improve SSA type-awareness in EQ and MUL instructions (noir-lang/noir#4691) feat: improve optimisations on range constraints (noir-lang/noir#4690) chore: remove last traces of nix (noir-lang/noir#4679) chore: Use is_entry_point helper on RuntimeType (noir-lang/noir#4678)
Description
Problem*
Resolves #4697
Summary*
The
nargo infocommand previously assumed that we only had a single circuit. In order to display accurate circuits sizes we should display the circuit size of each individual circuit entry part which is part of an entireProgram.For improved debugging I also had to exposed names in the
GeneratedAcir. This prompted also refactoring the context that we pass around inssa.rswhen creating a circuit and a program. Two new structs,SsaProgramArtifactandSsaCircuitArtifact, have been created to clean this up.Example output from

nargo infoonfold_basic_nested_call:Additional Context
It isn't necessarily obvious how we should display foldable circuits for contracts which already have multiple entry points. I have left this for follow-up work: #4720
Documentation*
Check one:
PR Checklist*
cargo fmton default settings.